// 入口函数
$(function () {
    // layui的弹出框
    var layer = layui.layer;
    // 进入页面，调用函数获取用户的基本信息
    getUserInfo()
    // 退出登录按钮的点击事件
    $('#btnLogout').on('click', function () {
        // 提示用户是否确认退出
        layer.confirm('确定退出吗?', { icon: 3, title: '提示' }, function (index) {
            // console.log('ok');
            // 确定之后，退出登录，跳转到登录页面，清除token
            localStorage.removeItem('token');
            location.href = '/login.html'
            // 下面这行代码必须要有，这是在点击确定之后，自动关闭弹出层
            layer.close(index);
        });

    })
})

// 获取用户的基本信息
function getUserInfo () {
    $.ajax({
        method: 'GET',
        url: '/my/userinfo',
        // 请求头的配置对象
        headers: {
            // 如果没有这个值，给一个空字符串
            Authorization: localStorage.getItem('token') || ''
        },
        // 请求成功后的回调函数 
        success: function (res) {
            // console.log(res);
            if (res.status !== 0) {
                // 请求失败
                return layui.layer.msg(res.message)
            }
            // 调用函数渲染头像
            renderAvatar(res.data);
        },
        // 请求失败后执行的回调函数
        error: function () {

        },
        /*         把complete函数放到请求过滤器中
        // 请求之后，不论成功还是失败，都会调用下面的函数
        // complete 函数的调用，在success和error函数之后
        complete: function (res) {
            // 在这里使用 res.responseJSON 拿到服务器的响应
            if (res.responseJSON.status === 1 && res.responseJSON.message === '身份认证失败！') {
                // 强制清除token
                localStorage.removeItem('token')
                // 强制跳转登录页
                location.href = '/login.html'
            }
        } */
    })
}

// 渲染用户的头像
function renderAvatar (user) {
    // 优先获取昵称，昵称不存在就使用用户名
    let name = user.nickname || user.username;
    // 设置欢迎
    $('#welcome').html(`欢迎 ${name}`)
    // 按需渲染头像
    if (user.user_pic != null) {
        // 用户设置了头像
        // 先 设置头像路径， 显示
        $('.layui-nav-img').attr('src', user.user_pic).show()

        // 隐藏文字头像
        $('.test-avatar').hide()
    } else {
        // 用户没有设置，采用默认的文字头像
        // 显示文字头像
        // 将名字的低一个字符转成大写 可以中文
        let first = name[0].toUpperCase()
        $('.test-avatar').text(first).show()
        // 隐藏图片头像
        $('.layui-nav-img').hide()
    }
}